
#include <QApplication>
#include "MyWindow.h"
 #include "CustomButtonWindow.h"
 #include "AdvancedWindow.h"
 #include "SettingsDialog.h"
#include "ElaApplication.h"
#include "ElaTheme.h"

int main(int argc, char *argv[])
{
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
    QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);  // 启用高 DPI (界面布局和几何)
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
    QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);                                               //  启用自动高 DPI 缩放 (图标和图片)
    QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);  // 使用精确的缩放因子，不进行四舍五入
#else
    // 根据实际屏幕缩放比例更改
    qputenv("QT_SCALE_FACTOR", "1.5");
#endif
#endif
    QApplication app(argc, argv);

    // 1. 首先：ElaApplication 构造函数执行
    //    - 创建 ElaApplicationPrivate
    //    - 设置默认路径和模式
    //    - 连接信号槽
    // eApp 单例在此刻被创建，构造函数代码运行
    // 2. 然后：手动调用 init()

    eApp->init();  // 初始化资源、字体等
    // eApp->setWindowDisplayMode(ElaApplicationType::ElaMica);

    // 创建示例窗口
    MyWindow mainWindow;
    mainWindow.show();

    // 演示其他窗口
    // 展示一个table栏
    //CustomButtonWindow customWindow;
    //customWindow.show();
    
    // 设置标题栏高度, 设置窗口是否固定
    //AdvancedWindow advancedWindow;
    //advancedWindow.show();

    //SettingsDialog settingsDialog(&mainWindow);
    //settingsDialog.show();


    return app.exec();
}